//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#ifndef _DatasetModelEvaluation_h__
#define _DatasetModelEvaluation_h__
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#include "ArffObject.h"
#include "ListBindingSitePredictionWeighted.h"
#include "InstanceModelEvaluation.h"
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
class DatasetModelEvaluation { 

  private:


  protected:

    String*                            filenameARFFIn;
    ArffObject*                        arffData;
    
    ListBindingSitePredictionWeighted* bindingSitePrediction;
    String*                            filenameOut;

    TListE <InstanceModelEvaluation>*  evaluation;
    
    String*                            toString;
    
  public:

    DatasetModelEvaluation ();
    DatasetModelEvaluation (const DatasetModelEvaluation&);
    DatasetModelEvaluation (const DatasetModelEvaluation*);

    ~DatasetModelEvaluation ();

    void                               FilenameARFFIn (String* filenameARFFIn);
    void                               ArffData (ArffObject* arffData);
    void                               BindingSitePrediction (ListBindingSitePredictionWeighted* bindingSitePrediction);
    void                               Evaluation (TListE <InstanceModelEvaluation>* evaluation);
    void                               FilenameOut (String* filenameOut);

    String*                            FilenameARFFIn (void);
    ArffObject*                        ArffData (void);
    ListBindingSitePredictionWeighted* BindingSitePrediction (void);
    TListE <InstanceModelEvaluation>*  Evaluation (void);
    String*                            FilenameOut (void);

    bool                               LoadData (void);
    
    bool                               EvaluateWithModel (void);
    
    bool                               WriteResults (void);

    DatasetModelEvaluation             operator= (const DatasetModelEvaluation& datasetModelEvaluation);

};
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#endif
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
